package com.jctrip.hotel.source.model.atour.resp;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Author: beihai
 * @Date: 2022/8/11 17:15
 * @Description:
 */
@NoArgsConstructor
@Data
public class RoomRateData {
    @JsonProperty("accDate")
    private String accDate;
    @JsonProperty("breakfastCount")
    private Integer breakfastCount;
    @JsonProperty("cancelRules")
    private List<CancelRuleDTO> cancelRules;
    //    @JsonProperty( "mebType")
    //    private Object mebType;
    @JsonProperty("payType")
    private Integer payType;
    @JsonProperty("promotionRules")
    private List<PromotionRuleDTO> promotionRules;
    @JsonProperty("roomRate")
    private Double roomRate;
    @JsonProperty("roomRateTypeId")
    private Integer roomRateTypeId;
    @JsonProperty("roomRateTypeName")
    private String roomRateTypeName;
    @JsonProperty("roomTypeId")
    private Integer roomTypeId;
    @JsonProperty("roomTypeName")
    private String roomTypeName;
    @JsonProperty("bookPolicy")
    private BookPolicyDTO bookPolicy;

    @NoArgsConstructor
    @Data
    public static class CancelRuleDTO {
        @JsonProperty("cancelTimeZone")
        private String cancelTimeZone;
        @JsonProperty("cashScale")
        private Integer cashScale;
        @JsonProperty("changeRule")
        private Integer changeRule;
        @JsonProperty("chargeRuleHourNum")
        private Integer chargeRuleHourNum;
        @JsonProperty("startDate")
        private String startDate;
        @JsonProperty("endDate")
        private String endDate;
        @JsonProperty("ruleValue")
        private String ruleValue;
    }

    @NoArgsConstructor
    @Data
    public static class PromotionRuleDTO {
        @JsonProperty("nightsMax")
        private Integer nightsMax;
        @JsonProperty("nightsMin")
        private Integer nightsMin;
        @JsonProperty("roomsMax")
        private Integer roomsMax;
        @JsonProperty("roomsMin")
        private Integer roomsMin;
    }

    @NoArgsConstructor
    @Data
    public static class BookPolicyDTO {
        @JsonProperty("startTimeOfDay")
        private String startTimeOfDay;
        @JsonProperty("endTimeOfDay")
        private String endTimeOfDay;
        @JsonProperty("sameDay")
        private Integer sameDay;
        @JsonProperty("startTimeOfEarliestDay")
        private String startTimeOfEarliestDay;
        @JsonProperty("endTimeOfLastDay")
        private String endTimeOfLastDay;
        @JsonProperty("earliestDay")
        private Integer earliestDay;
        @JsonProperty("latestDay")
        private Integer latestDay;
    }
}
